RecyclerView এবং ListView এর মাধ্যমে ডায়নামিক UI তৈরি

Mobile App Development - অ্যান্ড্রয়েড ডেভেলপমেন্ট (Android) - Android UI ডিজাইন এবং Layout Management
350

RecyclerView এবং ListView হল Android এর এমন উপাদান, যেগুলোর মাধ্যমে একটি ডাইনামিক লিস্ট তৈরি করা হয়। এদের সাহায্যে আপনি অনেক বড় ডেটা সেট থেকে একাধিক আইটেম স্ক্রোলযোগ্য তালিকা আকারে ব্যবহারকারীর কাছে উপস্থাপন করতে পারেন। যদিও ListView পুরনো একটি উপাদান, RecyclerView হল আরও আধুনিক এবং উচ্চতর পারফরম্যান্সের জন্য ব্যবহৃত হয়।


RecyclerView এবং ListView এর মাধ্যমে ডায়নামিক UI তৈরি

নিচে RecyclerView এবং ListView নিয়ে বিস্তারিত আলোচনা এবং ডায়নামিক UI তৈরির উদাহরণ দেওয়া হলো:

 

RecyclerView

RecyclerView হল একটি আরও উন্নত এবং কার্যকরী সংস্করণ যা ListView এর চেয়ে বেশি শক্তিশালী। এটি বড় ডেটা সেট প্রদর্শন করার জন্য আরও ভালো পারফরম্যান্স দেয় কারণ এটি ভিউগুলিকে পুনরায় ব্যবহার (recycle) করে, যার ফলে মেমোরি ব্যবহারের পরিমাণ কমে যায়। RecyclerView অনেক বেশি কাস্টমাইজেবল এবং flexibile, যেখানে বিভিন্ন ধরনের লেআউট ম্যানেজার ব্যবহার করা যায়।

RecyclerView এর উপাদানসমূহ:

  • LayoutManager: RecyclerView কিভাবে UI উপাদানগুলো প্রদর্শন করবে তা নির্ধারণ করে। এটি LinearLayoutManager, GridLayoutManager বা StaggeredGridLayoutManager হতে পারে।
  • Adapter: এটি RecyclerView এর জন্য ডেটা প্রদান করে এবং প্রতিটি আইটেমের জন্য ভিউ তৈরি করে।
  • ViewHolder: এটি একটি container যা RecyclerView-এর প্রতিটি আইটেম ভিউকে ধরে রাখে এবং ডেটা সেট করে।

RecyclerView এর বৈশিষ্ট্য:

  • Better Performance: RecyclerView পুরনো ভিউগুলো পুনরায় ব্যবহার করে।
  • Custom Layout: কাস্টম লেআউট তৈরি করা সহজ।
  • Animations: RecyclerView সহজে অ্যানিমেশন যুক্ত করা যায়।

উদাহরণ: RecyclerView সেটআপ

ধাপ ১: XML লেআউট ফাইল তৈরি

<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

ধাপ ২: RecyclerView.Adapter ক্লাস তৈরি

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
    private List<String> dataList;

    public MyAdapter(List<String> dataList) {
        this.dataList = dataList;
    }

    // ViewHolder class: প্রতিটি আইটেমের ভিউ ধারণ করে
    public static class MyViewHolder extends RecyclerView.ViewHolder {
        public TextView textView;

        public MyViewHolder(View view) {
            super(view);
            textView = view.findViewById(R.id.textView);
        }
    }

    // onCreateViewHolder: নতুন ভিউ তৈরি করে
    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.list_item, parent, false);
        return new MyViewHolder(view);
    }

    // onBindViewHolder: ভিউতে ডেটা সেট করে
    @Override
    public void onBindViewHolder(MyViewHolder holder, int position) {
        holder.textView.setText(dataList.get(position));
    }

    // getItemCount: আইটেমের সংখ্যা প্রদান করে
    @Override
    public int getItemCount() {
        return dataList.size();
    }
}

ধাপ ৩: MainActivity এ RecyclerView সেটআপ

public class MainActivity extends AppCompatActivity {
    private RecyclerView recyclerView;
    private MyAdapter adapter;
    private List<String> dataList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        recyclerView = findViewById(R.id.recyclerView);

        // LayoutManager সেট করা
        recyclerView.setLayoutManager(new LinearLayoutManager(this));

        // ডেটা লিস্ট তৈরি
        dataList = new ArrayList<>();
        for (int i = 1; i <= 20; i++) {
            dataList.add("Item " + i);
        }

        // Adapter সেট করা
        adapter = new MyAdapter(dataList);
        recyclerView.setAdapter(adapter);
    }
}

ধাপ ৪: আইটেম লেআউট (list_item.xml) তৈরি

<TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Item"/>

ListView

ListView হল Android এর পুরনো উপাদান, যা স্ক্রোলযোগ্য তালিকা তৈরি করতে ব্যবহৃত হয়। যদিও এটি এখনও ব্যবহৃত হয়, তবে RecyclerView ListView এর চেয়ে বেশি কার্যকরী এবং মেমোরি ব্যবহারে দক্ষ। ListView এর জন্য ArrayAdapter ব্যবহার করা হয়।

ListView এর বৈশিষ্ট্য:

  • সহজ এবং দ্রুত ব্যবহারযোগ্য।
  • তবে বড় ডেটা সেট প্রদর্শন করার সময় এটি কম কার্যকর কারণ এটি আইটেমগুলোকে পুনরায় ব্যবহার (recycle) করে না।

উদাহরণ: ListView সেটআপ

ধাপ ১: XML লেআউট ফাইল তৈরি

<ListView
    android:id="@+id/listView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

ধাপ ২: MainActivity এ ListView সেটআপ

public class MainActivity extends AppCompatActivity {
    private ListView listView;
    private ArrayAdapter<String> adapter;
    private List<String> dataList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        listView = findViewById(R.id.listView);

        // ডেটা লিস্ট তৈরি
        dataList = new ArrayList<>();
        for (int i = 1; i <= 20; i++) {
            dataList.add("Item " + i);
        }

        // Adapter সেট করা
        adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, dataList);
        listView.setAdapter(adapter);
    }
}

RecyclerView এবং ListView এর মধ্যে পার্থক্য

বৈশিষ্ট্যRecyclerViewListView
পুনঃব্যবহারভিউগুলো পুনরায় ব্যবহার করে (Recycle)পুনরায় ব্যবহার করে না
LayoutManagerবিভিন্ন লেআউট ম্যানেজার সমর্থন করে (Linear, Grid, Staggered)কেবল একটি লিস্ট লেআউট সমর্থন করে
Animation Supportবিল্ট-ইন অ্যানিমেশন সমর্থন করেসরাসরি অ্যানিমেশন সমর্থন করে না
Adapterকাস্টম অ্যাডাপ্টার প্রয়োজনসহজ অ্যাডাপ্টার যথেষ্ট
Performanceউন্নত পারফরম্যান্স এবং মেমোরি ব্যবস্থাপনাপারফরম্যান্স তুলনামূলকভাবে কম

উপসংহার:

RecyclerView এবং ListView উভয়েই ডাইনামিক লিস্ট প্রদর্শনের জন্য ব্যবহার করা হয়, তবে RecyclerView আধুনিক এবং বড় ডেটা সেটের জন্য আরও কার্যকরী। যদি আপনার অ্যাপ্লিকেশনে অনেক বেশি ডেটা এবং বিভিন্ন ধরনের লেআউট প্রয়োজন হয়, তবে RecyclerView ব্যবহার করা উচিত। অন্যদিকে, ছোট এবং সাধারণ লিস্টের জন্য ListView এখনো কার্যকর হতে পারে।

Content added || updated By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...